home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / polardrw / data.z / FormClock.frm < prev    next >
Text File  |  1999-05-17  |  6KB  |  230 lines

  1. VERSION 5.00
  2. Object = "{78BA52DF-D227-11D2-B9D2-008048FD54E6}#1.0#0"; "POLARD~1.OCX"
  3. Begin VB.Form FormClock 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "Clock"
  6.    ClientHeight    =   3240
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   4845
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   3240
  14.    ScaleWidth      =   4845
  15.    ShowInTaskbar   =   0   'False
  16.    StartUpPosition =   3  'Windows Default
  17.    Begin POLARDRAWLib.POLARDraw POLARDraw 
  18.       Height          =   3015
  19.       Left            =   120
  20.       TabIndex        =   0
  21.       Top             =   120
  22.       Width           =   3255
  23.       _Version        =   65536
  24.       _ExtentX        =   5741
  25.       _ExtentY        =   5318
  26.       _StockProps     =   160
  27.       Appearance      =   1
  28.       EditMode        =   4
  29.       DrawPaper       =   0   'False
  30.       PageOriginY     =   19955
  31.       HorizontalGrid  =   567
  32.       VerticalGrid    =   567
  33.       ShowVerticalScrollBar=   0   'False
  34.       ShowHorizontalScrollBar=   0   'False
  35.       ShowVerticalRuler=   0   'False
  36.       ShowHorizontalRuler=   0   'False
  37.       MeasurementUnits=   8
  38.       RecordUndo      =   0   'False
  39.       AllowSelect     =   0   'False
  40.       AllowRotate     =   0   'False
  41.       AllowDelete     =   0   'False
  42.       AllowResize     =   0   'False
  43.       AllowMove       =   0   'False
  44.       AllowEditPoints =   0   'False
  45.    End
  46.    Begin VB.Timer Timer 
  47.       Interval        =   1000
  48.       Left            =   3720
  49.       Top             =   1320
  50.    End
  51.    Begin VB.CheckBox CheckTicking 
  52.       Caption         =   "Ticking"
  53.       Height          =   375
  54.       Left            =   3600
  55.       TabIndex        =   3
  56.       Top             =   2760
  57.       Width           =   1095
  58.    End
  59.    Begin VB.CheckBox CheckBorder 
  60.       Caption         =   "Border"
  61.       Height          =   255
  62.       Left            =   3600
  63.       TabIndex        =   2
  64.       Top             =   2520
  65.       Value           =   1  'Checked
  66.       Width           =   1095
  67.    End
  68.    Begin VB.CommandButton Close 
  69.       Caption         =   "Close"
  70.       Height          =   375
  71.       Left            =   3600
  72.       TabIndex        =   1
  73.       Top             =   120
  74.       Width           =   1095
  75.    End
  76. End
  77. Attribute VB_Name = "FormClock"
  78. Attribute VB_GlobalNameSpace = False
  79. Attribute VB_Creatable = False
  80. Attribute VB_PredeclaredId = True
  81. Attribute VB_Exposed = False
  82. Private Type POINT
  83.    x As Long
  84.    y As Long
  85. End Type
  86.  
  87. Dim m_lHHID As Long
  88. Dim m_lMMID As Long
  89. Dim m_lSSID As Long
  90. Dim m_fTicking As Boolean
  91. Dim m_fBorder As Boolean
  92. Dim ptCenter As POINT
  93.  
  94.  
  95. Private Sub Form_Load()
  96.    Dim lX As Long
  97.    Dim lY As Long
  98.    Dim IID As Long
  99.    Dim l As Long
  100.    Dim lRad As Long
  101.    
  102.    m_fTicking = False
  103.    m_fBorder = True
  104.    
  105.    l = 0
  106.    lRad = 90
  107.  
  108.    ptCenter.x = 0
  109.    ptCenter.y = 0
  110.    
  111.    POLARDraw.EditMode = polRotate
  112.    
  113.    While (l < 12)
  114.       Dim lAngle As Double
  115.       
  116.       lAngle = l * 30 / (360 / (2 * 3.1416))
  117.       lX = ptCenter.x - Sin(lAngle) * lRad
  118.       lY = ptCenter.y - Cos(lAngle) * lRad
  119.       If (l * 30) Mod 90 = 0 Then
  120.          lID = POLARDraw.AddShape(5, lX - 10, lY - 10, lX + 10, lY + 10)
  121.       Else
  122.          lID = POLARDraw.AddShape(5, lX - 8, lY - 8, lX + 8, lY + 8)
  123.       End If
  124.       POLARDraw.SetShapeRotation lID, l * 30
  125.       POLARDraw.SetShapeFillColor lID, RGB(0, 0, 255)
  126.       l = l + 1
  127.    Wend
  128.  
  129.    lX = ptCenter.x
  130.    lY = ptCenter.y
  131.  
  132.    Rem ID of hour handle
  133.    m_lHHID = POLARDraw.AddShape(66, lX - 40, lY - 30, lX + 40, lY + 30)
  134.    POLARDraw.SetShapeRotation m_lHHID, -90
  135.    POLARDraw.MoveShape m_lHHID, 0, -30
  136.    Rem ID of minute handle
  137.    m_lMMID = POLARDraw.AddShape(5, lX - 10, lY - 100, lX + 10, lY + 10)
  138.    POLARDraw.SetShapeFillColor m_lMMID, RGB(255, 0, 0)
  139.    Rem ID of seconds handle
  140.    m_lSSID = POLARDraw.AddShape(1, lX - 2, lY - 95, lX + 2, lY + 10)
  141.  
  142.    POLARDraw.SetShapeFillColor m_lSSID, RGB(0, 0, 255)
  143.    POLARDraw.SelectAll
  144.    POLARDraw.FitToSelection
  145.    POLARDraw.ClearSelection
  146. End Sub
  147.  
  148. Private Sub Timer_Timer()
  149.    Dim lHH As Long
  150.    Dim lMM As Long
  151.    Dim lSS As Long
  152.    Dim lX As Long
  153.    Dim lY As Long
  154.    Dim crVal As Long
  155.    
  156.    ' get current time
  157.    lHH = Hour(Time)
  158.    lMM = Minute(Time)
  159.    lSS = Second(Time)
  160.    
  161.    ' disable redrawing while we moving objects
  162.    POLARDraw.EnableRendering = False
  163.  
  164.    lX = ptCenter.x
  165.    lY = ptCenter.y
  166.  
  167.    ' set shapes to initial position
  168.    POLARDraw.SetShapePos m_lHHID, lX - 40, lY - 30, lX + 40, lY + 30
  169.    POLARDraw.SetShapeRotation m_lHHID, -90
  170.    POLARDraw.MoveShape m_lHHID, 0, -30
  171.    POLARDraw.SetShapePos m_lMMID, lX - 10, lY - 100, lX + 10, lY + 10
  172.    POLARDraw.SetShapeRotation m_lMMID, 0
  173.    POLARDraw.SetShapeFillColor m_lMMID, RGB(255, 0, 0)
  174.    POLARDraw.SetShapePos m_lSSID, lX - 2, lY - 95, lX + 2, lY + 10
  175.    POLARDraw.SetShapeRotation m_lSSID, 0
  176.  
  177.    ' rotate them around center according to the current time
  178.    POLARDraw.RotateShapeAroundPoint m_lHHID, ptCenter.x, ptCenter.y, -(lHH + lMM / 60) * 30
  179.    POLARDraw.RotateShapeAroundPoint m_lMMID, ptCenter.x, ptCenter.y, -lMM * 6
  180.    POLARDraw.RotateShapeAroundPoint m_lSSID, ptCenter.x, ptCenter.y, -lSS * 6
  181.  
  182.    crVal = 255 * ((lSS Mod 60) / 60#)
  183.    
  184.    POLARDraw.EnableRendering = True
  185.    
  186.    POLARDraw.SetShapeFillColor m_lHHID, RGB(crVal, 255, 0)
  187.    If m_fTicking Then
  188.       Beep
  189.    End If
  190. End Sub
  191.  
  192. Private Sub CheckBorder_Click()
  193.    If CheckBorder.Value = Checked Then
  194.       m_fBorder = True
  195.    Else
  196.       m_fBorder = False
  197.    End If
  198.  
  199.    If m_fBorder Then
  200.       POLARDraw.Appearance = cc3D
  201.       POLARDraw.BorderStyle = 1
  202.    Else
  203.       POLARDraw.Appearance = ccFlat
  204.       POLARDraw.BorderStyle = 0
  205.    End If
  206.  
  207.    ' stretch the canvas to fit the window
  208.    POLARDraw.EnableRendering = False
  209.    POLARDraw.SelectAll
  210.    POLARDraw.FitToSelection
  211.    POLARDraw.EnableRendering = True
  212.    
  213.    ' this call will re-render canvas
  214.    POLARDraw.ClearSelection
  215.  
  216. End Sub
  217.  
  218. Private Sub CheckTicking_Click()
  219.    If CheckTicking.Value = Checked Then
  220.       m_fTicking = True
  221.    Else
  222.       m_fTicking = False
  223.    End If
  224. End Sub
  225.  
  226. Private Sub Close_Click()
  227.    End
  228. End Sub
  229.  
  230.